export default {
  // 每个模块的核心概念
  namespaced: true, // 命名空间，实际开发中，这个属性一定回家（为了隔离数据）
  state: {
    count: 100,
    aaa: 'bbb',
    ccc: 'ddd'
  },
  getters: {
    getCount (state) {
      return state.count
    },
    // state 就是上面的state
    getDoubleCount (state) {
      console.log('---getDoubleCount---')
      return state.count * 2
    }
  },
  // 可以直接更改state中的值
  mutations: {
    /**
     * 参数1：state
     * 参数2：参数、载荷
     */
    add (state, payload) {
      state.count += payload
    },
    minus (state, payload) {
      state.count -= payload
    }
  },
  actions: {
    /**
     * 参数1：上下文
     * 参数2：参数、载荷
     */
    asyncMinus (context, payload) {
      // 模拟发送网络请求
      setTimeout(() => {
        context.commit('minus', payload)
      }, 1000)
    }
  }
}
